package com.nursinghome.utils;

import com.alibaba.excel.EasyExcel;
import com.nursinghome.admin.service.RoomService;
import com.sun.deploy.net.URLEncoder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@Component
public class ExcelUtils {
    @Autowired
    private  RoomService roomService;
    public static void download(List list, String trueFileName, HttpServletResponse response, Class classname) throws IOException {
        // 这里注意 有同学反应使用swagger 会导致各种问题，请直接用浏览器或者用postman
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
        String fileName = URLEncoder.encode(trueFileName, "UTF-8").replaceAll("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
        EasyExcel.write(response.getOutputStream(), classname).sheet("模板").doWrite(list);
    }

    //public static RespBean upload(MultipartFile multipartFile,  ExcelService<T> excelService) throws IOException {
    //    // 这里 需要指定读用哪个class去读，然后读取第一个sheet 文件流会自动关闭
    //    // 这里每次会读取3000条数据 然后返回过来 直接调用使用数据就行
    //    EasyExcel.read(multipartFile.getInputStream(), T.class, new PageReadListener<T>(dataList -> {
    //        for (T item : dataList) {
    //            //将导入的数据用mybatisPlus一个个添加进数据库
    //            try {
    //                excelService.insert(item);
    //            } catch (NurisingHomeException e) {
    //                throw new RuntimeException(e.getMessage());
    //            }
    //        }
    //    })).sheet().doRead();
    //
    //    return RespBean.ok("上传成功");
    //}
}
